package com.ftg.learn.chapter15;

import java.util.*;

/**
 * @author XuWy
 * @date 2021/7/26
 */
public class Killer {

	/**
	* 约瑟夫环:已知 n 个人（分别用编号 1，2，3，…，n 表示）围坐在一张圆桌周围，
		从编号为 k 的人开始顺时针报数，数到 m 的那个人出列；他的下一个人又从 1 开始，
		还是顺时针开始报数，数到 m 的那个人又出列；依次重复下去，直到圆桌上剩余一个人。
	* @param num 人数
	* @param no  几位一杀
	*/
	public  static List<String> killPerson(int num,int no){

		List<String> names = new ArrayList<>();
		for(int i = 0 ;i < num;i++){
			names.add("zhang"+i);
		}

		for(int i = 0,j=0 ;i < names.size() && names.size() != 1;i++){
			if(j++ == no){
				names.remove(i);
				//计位清零
				j = 0;
				//下标前移问题
				i--;
			}

			if(names.size()-1 == i){
				i=-1;
			}
		}
		return names;
	}

	public static void main(String[] args){
		List<String> list = killPerson(100,3);
		System.out.println(list);
	}

}